package com.tenement.mybatis.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.tenement.mybatis.entity.User;

public interface UserMapper {

	int deleteByPrimaryKey(Integer uId);

	int insert(User record);

	int insertSelective(User record);

	int updateByPrimaryKeySelective(User record);

	int updateByPrimaryKey(User record);

	/**
	 * 获取某个用户 的信息通过主键
	 * 
	 * @param uId
	 * @return
	 */
	User selectByPrimaryKey(Integer uId);

	/**
	 * 邮箱登录
	 * 
	 * @param user
	 * @return
	 */
	User userLoginByEmail(User user);

	/**
	 * 手机号登录
	 * 
	 * @param user
	 * @return
	 */
	User userLoginByPhone(User user);

	/**
	 * 用户注册,判断手机号是否已经被注册,需要传入uId
	 * 
	 * @param user
	 * @return
	 */
	User verifyPhoneUsedReg(User user);

	/**
	 * 判断手机号是否已经被注册
	 * 
	 * @param uTelephone
	 * @return
	 */
	User verifyPhoneUsed(String uTelephone);

	/**
	 * 判断手机高是否已经被注册
	 * 
	 * @param email
	 * @return
	 */
	User verifyEmailUsed(@Param("uEmail") String uEmail);

	/**
	 * 用户注册
	 * 
	 * @param user
	 * @return
	 */
	int userReister(User user);

	/**
	 * 用户上传图片到服务器，即修改用户图片
	 * 
	 * @param user
	 * @return
	 */
	int uploadUserImage(User user);

	/**
	 * 修改用户的邮箱,邮箱，uId
	 * 
	 * @param user
	 * @return
	 */
	int modifyUserEmail(User user);

	/**
	 * 修改用户的手机号
	 * 
	 * @param user
	 * @return
	 */
	int modifyUserPhone(User user);

	/**
	 * 修改用户密码
	 * 
	 * @param user
	 * @return
	 */
	int modifyUserPassword(User user);

	/**
	 * 修改用户普通信息，用户头像好用户昵称
	 * 
	 * @param user
	 * @return
	 */
	int modifyUserMsg(User user);

	/*------------------------------------管理员操作------------------------------------*/
	/**
	 * 获取用户信息列表，管理员操作
	 * 
	 * @return
	 */
	List<User> getUserList();

	/**
	 * 管理员重置用户密码
	 * 
	 * @return
	 */
	int resetUserPassword();

	/**
	 * 级联删除用户信息
	 * 
	 * @return
	 */
	int deleteUserMsg();
}